import axios from 'axios'
import { showToast } from 'vant'
// import { useUserStore } from '@/store/user'
import router from '@/router'
import { showLoadingToast, closeToast } from 'vant';

// const router =useRouter()
// 这边由于后端没有区分测试和正式，姑且都写成一个接口。
const requests = axios.create({
  // baseURL: '/prod-api',
  baseURL: 'https://qw.followup.169000.net/prod-api',
  timeout: 10000
})
// 携带 cookie，对目前的项目没有什么作用，因为我们是 token 鉴权
//axios.defaults.withCredentials = true
// 请求头，headers 信息
//requests.defaults.headers['X-Requested-With'] = 'XMLHttpRequest'
//axios.defaults.headers['token'] = localGet('token') || ''
// 默认 post 请求，使用 application/json 形式
requests.defaults.headers.post['Content-Type'] = 'application/json'

//请求拦截器----在项目中发请求（请求没有发出去）可以做一些事情
requests.interceptors.request.use((config) => {
  // const user = useUserStore()
  // if (user.token) {
  //   config.headers.Authorization = `Bearer ${user.token}`;
  // }
  // //需要携带token带给服务器
  // if(store.state.user.token){
  //   config.headers.token = store.state.user.token;
  // }
  // nprogress.start();
  showLoadingToast({
    message: '加载中...',
    forbidClick: true,
    loadingType: 'spinner',
  });
  return config;
});


// 响应拦截器，内部根据返回值，重新组装，统一管理。
requests.interceptors.response.use(res => {
  closeToast()
  if (typeof res.data !== 'object') {
    showToast('服务端数据异常！')
    return Promise.reject(res)
  }
  //   if (res.data.resultCode != 200) {
  //     if (res.data.message) showToast(res.data.message)
  //     if (res.data.resultCode == 419) {
  //       router.push({ path: '/login' })
  //     }
  //     return Promise.reject(res.data)
  //   }
  // if(res.data.code == 403){
  //   showToast(res.data.msg)
  // }
  // console.log(res.data.msg);
  // if (res.data.code == 401) {
  //   router.push({ name: 'login' })
  // }
  // showLoadingToast({
  //   message: '加载中...',
  //   forbidClick: false,
  //   loadingType: 'spinner',
  // });
  return res.data
  //return res.data.data
},
  (err) => { // 异常的请求返回处理
    showToast('服务端异常，请稍后重试')
    showLoadingToast({
      message: '加载中...',
      forbidClick: false,
      loadingType: 'spinner',
    });
    return err
    // const data = {
    //   message: err.response.data.message || '请重试',
    //   code: err.response.status !== 200 ? err.response.status : err.response.data.errCode
    // }
    // throw data;
  }
)

export default requests
